
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>3、第一个Java程序 - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>3、第一个Java程序 - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">Notepad++ 是什么？它具备哪些对程序员有用的功能？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Notepad++ (NPP) 是一款免费、开源的文本编辑器。它支持多种编程语言，并具有语法高亮、自动完成、括号匹配、分屏编辑等功能，因其轻巧和功能强大而成为许多开发人员的首选工具。</div>
          </div>
          <div class="card-source">来源: 安装开发工具</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">在命令行中，编译和运行一个名为 HelloWorld.java 的Java程序分别使用什么命令？编译后会生成什么文件？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">编译Java程序使用 `javac HelloWorld.java` 命令，该命令会生成一个名为 `HelloWorld.class` 的字节码文件。运行程序则使用 `java HelloWorld` 命令。</div>
          </div>
          <div class="card-source">来源: 第一个Java程序</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">Java程序的执行流程是怎样的？请简述从源代码到程序运行的主要步骤。</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">1. 程序员编写Java源代码（.java文件）。<br>2. 使用Java编译器（javac）将源代码编译成字节码（.class文件）。<br>3. Java虚拟机（JVM）使用java命令加载并运行字节码文件，从程序的入口点 `main` 方法开始执行程序逻辑。</div>
          </div>
          <div class="card-source">来源: 分析Java的运行原理</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">Java的“跨平台”特性是什么意思？它的实现依赖于哪个核心组件？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Java的“跨平台”特性（也称“一次编写，到处运行”）指Java程序可以在不同的操作系统和硬件上运行，而无需修改源代码。这一特性主要依赖于Java虚拟机（JVM）的实现。</div>
          </div>
          <div class="card-source">来源: Java跨平台</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">Java虚拟机（JVM）在实现跨平台特性中扮演了什么关键角色？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">JVM是Java跨平台的关键。Java源代码被编译成平台无关的字节码，而每个操作系统都有自己的JVM实现。JVM负责将这些通用的字节码翻译成特定平台的机器代码并执行程序，从而充当了中间层。</div>
          </div>
          <div class="card-source">来源: Java跨平台</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">请解释JDK、JRE和JVM这三个概念及其相互关系。</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">JVM（Java Virtual Machine）是虚拟机，用于执行Java字节码。JRE（Java Runtime Environment）是Java运行环境，它包含了JVM和解释器。JDK（Java Development Kit）是Java开发工具包，它包含了JRE以及编译器和调试工具等开发工具。</div>
          </div>
          <div class="card-source">来源: Java中几个重要的概念</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">一个基础的Java "Hello, World!" 程序结构是怎样的？程序的入口点是什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">一个基础的Java程序包含一个公开类（public class），例如 `HelloWorld`。程序的入口点是类中的 `public static void main(String[] args)` 方法，程序从这个方法开始执行。</div>
          </div>
          <div class="card-source">来源: 第一个Java程序</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">什么是Java字节码（bytecode）？它在Java的运行原理中起什么作用？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">字节码是一种中间形式，由Java编译器（javac）将Java源代码翻译而成，保存在.class文件中。它不同于特定平台的机器代码，可以在任何安装了Java虚拟机（JVM）的系统上执行，是实现Java跨平台性的基础。</div>
          </div>
          <div class="card-source">来源: 分析Java的运行原理</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">除了JVM，还有哪些因素有助于实现Java的跨平台特性？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">除了JVM，平台无关的API（Java标准库）也是实现跨平台的重要因素。这些API提供了标准的功能，让Java程序无需关心底层操作系统的细节，从而保证了代码的可移植性。</div>
          </div>
          <div class="card-source">来源: Java跨平台</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
